import Vue from 'vue'
import store from './store'
import App from './App'

import Config from './common/Config' //项目配置数据
import Apiurl from './common/Apiurl' //所有后台请求接口路径
import Unfold_data from './common/Unfold_data' //项目铺数据方法
import uView from "uview-ui";
Vue.use(uView);
import scan from './components/scan.vue'

Vue.component('scan',scan)
	
/**
 *  因工具函数属于公司资产, 所以直接在Vue实例挂载几个常用的函数
 *  所有测试用数据均存放于根目录json.js
 *  
 *  css部分使用了App.vue下的全局样式和iconfont图标，有需要图标库的可以留言。
 *  示例使用了uni.scss下的变量, 除变量外已尽量移除特有语法,可直接替换为其他预处理器使用
 * 
 */


 var script = document.createElement('script');
 script.src = "https://file.jialianxin.cn/H5/js/uni_webview.js";
 document.head.appendChild(script);



Vue.prototype.Unfold_data = Unfold_data //挂载到Vue实例上面
Vue.prototype.Config_ysy = Config //挂载到Vue实例上面
Vue.prototype.dateFormat= function(fmt, date) {//时间格式化
    let ret;
    const opt = {
        "Y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "M+": date.getMinutes().toString(),         // 分
        "S+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加，必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}

const msg = (title, duration=1500, mask=false, icon='none')=>{
	//统一提示方便全局修改
	if(Boolean(title) === false){
		return;
	}
	uni.showToast({
		title,
		duration,
		mask,
		icon
	});
}
const json = type=>{
	//模拟异步请求数据
	return new Promise(resolve=>{
		setTimeout(()=>{
			resolve(Json[type]);
		}, 500)
	})
}


const prePage = ()=>{
	let pages = getCurrentPages();
	let prePage = pages[pages.length - 2];
	// #ifdef H5
	return prePage;
	// #endif
	return prePage.$vm;
}


Vue.config.productionTip = false
Vue.prototype.$fire = new Vue();
Vue.prototype.$store = store;
Vue.prototype.$api = {msg, json, prePage};

//////////////////////////////////////////////音频配置(开始)/////////////////////////////////////
// #ifndef H5
var gaudioctx=uni.getBackgroundAudioManager()
// #endif
// #ifdef H5
var gaudioctx=uni.createInnerAudioContext()
// #endif
Vue.prototype.$audio = gaudioctx


//////////////////此处为app端 判断音频电话来点意外中断后的继续播放
// #ifdef APP-PLUS
try{
	if(uni.getSystemInfoSync().platform == 'android'){

	var main = plus.android.runtimeMainActivity();  
	var Context = plus.android.importClass("android.content.Context");  
	// console.log('Context ->',Context)
	var telephonyManager = plus.android.importClass("android.telephony.TelephonyManager");  
	// console.log('telephonyManager ->',telephonyManager)
	var telephonyManager=plus.android.runtimeMainActivity().getSystemService(Context.TELEPHONY_SERVICE);  
	// console.log('telephonyManager ->',telephonyManager)
	var receiver=plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {  
			onReceive: function(context, intent) { //实现onReceiver回调函数  
				 plus.android.importClass(intent);  
				var telephonyManager = plus.android.importClass("android.telephony.TelephonyManager");  
				var telephonyManager=plus.android.runtimeMainActivity().getSystemService(Context.TELEPHONY_SERVICE);  
				var phonetype=telephonyManager.getCallState();  
				var phoneNumber = intent.getStringExtra(telephonyManager.EXTRA_INCOMING_NUMBER);  
				/**  
				 * public static final int CALL_STATE_IDLE = 0; //空闲状态    
				 * public static final int CALL_STATE_RINGING = 1; //振铃状态    
				 * public static final int CALL_STATE_OFFHOOK = 2; //至少有一个通话存在    
				 */  
				//if(phonetype==2){  
					//main.unregisterReceiver(receiver);  
				//}  
				if(phonetype==0 && !store.state.n_pause){
					gaudioctx.play()
				}
			}  
			});  
	var IntentFilter = plus.android.importClass('android.content.IntentFilter');  
	var filter = new IntentFilter();  
	filter.addAction(telephonyManager.ACTION_PHONE_STATE_CHANGED); //监听开关  
	main.registerReceiver(receiver, filter); //注册监听 
	
	}else if(uni.getSystemInfoSync().platform == 'ios'){
		var callstatus=false
		var CTCall = plus.ios.importClass('CTCall');  
		var CTCallCenter = plus.ios.importClass('CTCallCenter');  
		var center = new CTCallCenter();  
		center.init()  
		center.setCallEventHandler(function(ctCall){  
			callstatus=!callstatus
			if(!callstatus && !store.state.n_pause){
				gaudioctx.play()
			}else{
				gaudioctx.pause()
			}
		})
	}
	
}catch(err){
	// console.log(err)
}

// #endif
//////////////////////////////////////////////音频配置(结束)/////////////////////////////////////



App.mpType = 'app'

const app = new Vue({
    ...App
})
app.$mount()

 